package main

func main() {
	/*
		1.命名空间：
			在编程语言中常表示标识符的可见范围
				相当于给标识符添加了标识前缀，是标识符变得全局唯一
				使程序组织更加模块化，降低了程序内部的耦合性

		2.作用域：
			是指名字与实体（可以理解为特定的内存地址）的绑定保持有效的那部分程序逻辑区间
			G0语言是静态作用域的语言。
				即变量的作用域不依赖程序执行时的元素，在编译期就能确定

			Go语言有三种类型的作用域：
			（1）全局作用域
					在任何地方都可以访问的标识符
				A: Go语言内置的预声明标识符（包括预声明的类型名、关键字、内置函数等）
				B: Go语言包内以大写字母开头的标识符（包括变量、常量、函数和方法名、自定义类型、结构字段等）
			（2）包内作用域
					在本包可见，在其他包都不可见
				在go语言包内定义的以小写字母开头的标识符（变量、常量、函数和方法名、自定义类型、结构字段等）
			（3）隐式作用域
					只在当前代码块内可见，其作用域属于当前代码块的隐式作用域
				每个代码内块定义的变量，称为”局部变量“

		3.变量覆盖：
			Go编译器解析变量名到引用实体采用的是从里到外的搜索模式，里层的局部变量能够覆盖外层变量，使得外层的同名变量不可见
	*/
}
